﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
namespace ReclutamientoCosea
{
    public static class LogInLogOut
    {
        private static AppSettingsReader settings = new AppSettingsReader();

        private static Persona _persona = new Persona();

        public static Persona Persona
        {
            get { return LogInLogOut._persona; }
            set { LogInLogOut._persona = value; }
        }

        private static Usuario _usuario = new Usuario();

        public static Usuario Usuario
        {
            get { return LogInLogOut._usuario; }
            set { LogInLogOut._usuario = value; }
        }

        public static Persona Login(Usuario user)
        {
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string strSQL = "";
            try
            {
                Persona resultado = new Persona();
                bd.bdConecta();
                strSQL = "select u.idpersona,u.idusuario, u.username, u.password, u.activo from usuario u ";
                strSQL += "inner join persona p ";
                strSQL += "on u.idpersona = p.idpersona where u.activo = 1 ";
                strSQL += "and username = '{0}' ";

                strSQL = String.Format(strSQL, user.username);

                DataSet ds = bd.dataSetConsulta(strSQL, "usuarios");

                if (ds.Tables["usuarios"].Rows.Count > 0)
                {
                    Personas prsnas = new Personas();
                    if (ds.Tables["usuarios"].Rows[0]["password"].ToString ().Trim () == user.password.Trim())
                    {
                        resultado = prsnas.GetPersona(ds.Tables["usuarios"].Rows[0]["idpersona"].ToString());
                        _persona = resultado;
                        _usuario = user;
                        _usuario.activo = true;
                        _usuario.idpersona = ds.Tables["usuarios"].Rows[0]["idpersona"].ToString();
                        _usuario.idusuario = ds.Tables["usuarios"].Rows[0]["idusuario"].ToString();
                    }
                    else
                    {
                        resultado.idpersona = "P/I";
                    }
                }
                else
                {
                    resultado.idpersona = "N/A";
                }

                return resultado;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }

        }
    }
}
